/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.domain;

import com.anwen.mongo.annotation.ID;
import com.anwen.mongo.annotation.collection.CollectionField;
import com.anwen.mongo.annotation.collection.CollectionName;
import com.anwen.mongo.enums.FieldFill;
import com.comac.ins.isfd.constant.MongoDataConstant;
import com.comac.ins.isfd.domain.bo.IsfdMeshOp2CompareTaskBo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 自然网格结果对比任务实体类
 *
 * @author lj
 * @date 2025-01-13
 */
@Data
@CollectionName(value = MongoDataConstant.MESH_OP2_COMPARE_TASK_TABLE_NAME)
@AutoMapper(target = IsfdMeshOp2CompareTaskBo.class)
public class IsfdMeshOp2CompareTask {

    @ID
    private String _id;

    /**
     * 填写完成的最大步骤
     */

    private Integer maxStep;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 所属部段编码
     */
    private List<String> sectionNumbers;

    /**
     * 所属部段名称
     */
    private List<String> sectionNames;

    /**
     * 第一步，对比对象列表
     */
    private List<IsfdMeshOp2CompareObject> stepOne;

    /**
     * 第二步，对比条目列表
     */
    private List<IsfdMeshOp2CompareItemRef> stepTwo;

    /**
     * 第三步，单元节点清单
     */
    private IsfdMeshOp2UnitNodeList stepThree;

    /**
     * 任务状态：
     * 草稿，对比中，对比完成 ，对比失败
     *
     * @see com.comac.ins.isfd.constant.enums.IsfdMeshOp2CompareTaskStatusEnum
     */
    private String status;

    /**
     * 失败原因
     */
    private String message;

    @CollectionField(value = "createTime", fill = FieldFill.INSERT)
    private Date createTime;

    private Long createBy;

    @CollectionField(value = "updateTime", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    private Long updateBy;
}
